Today's Question:  What does your personal desk look like?        GIVE A SHOUT

SEARCH KEYWORD -- Algebraic Data Type



  XML Abuse

It’s everywhere. XML Abuse. From Domain Specific Languages to Data Serialization, XML is the most commonly abused data format I’ve ever encountered. XML is perfectly fine for (because it was designed for this): First of all: XML was designed to be written by humans and read by humans. Nearly all generated XML I’ve seen sucks badly. I think this is because XML cannot efficiently represent common data structures found in programming languages.XML is good...

   XML,Abuse,Alternative,Serialization,Data storage     2011-12-14 07:12:10

  php://input in PHP

When using xml-rpc, server side will get the data from client with php://input method instead of $_POST. Hence today we will discuss php://input. PHP official manual has below explanation to php://input: “php://input allows you to read raw POST data. It is a less memory intensive alternative to $HTTP_RAW_POST_DATA and does not need any special php.ini directives. php://input is not available with enctype=”multipart/form-data”. Here we und...

   php://input, IO, input     2013-02-25 20:43:00

  Cool things you can do with iPhone

Nowadays smart phones have plenty of cool features you can get to know without reading the manuals. But do you know there are some useful but less well known features which can ease our life? In this post, we will share with you some cool features on iPhone. If you have an iPhone with, go and get a try. 1. Use Google Map as free GPS While traveling abroad, you can use Google Maps as a free GPS without an international data plan by making use of it's hidden offline maps feature.You can use this f...

   iPhone,Feature     2013-10-05 07:28:07

  Be careful about nil check on interface in GoLang

nil check is frequently seen in GoLang code especially for error check since GoLang's special error handling convention. In most cases, nil check is straight forward, but in interface case, it's a bit different and special care needs to be taken. Take a look at below code snippet and guess what the output will be. package main import ( "bytes" "fmt" "io" ) func check(w io.Writer) { if w != nil { fmt.Println("w is not nil") } fmt.Printf("w is %+v\n", w) } func main() { var b *bytes.B...

   INTERFACE,GOLANG,NIL CHECK,NIL TYPE,NIL VALUE     2019-04-06 07:47:07

  Why no max/min function for integer in GoLang

You may notice that there is no max/min function provided to compare the maximum/minimum of two or more integers if you are a GoLang developer with some experience . In other languages, these functions are provided as part of the core lib functions. Have you wondered why?  Indeed GoLang provides max/min function in math package, but they are used for comparing float64 data type. The signature of these two functions are math.Min(float64, float64) float64 math.Max(float64, float64) float...

   GOLANG,MAX,INT,INT64     2019-06-08 07:00:55

  Be careful about printing error as string in GoLang

In GoLang, we can format and produce string using fmt.Printf(), just like C, GoLang also supports format verbs like %s, %d which can be placeholder for different types of values. But please pay attention when printing error as string so that you will not fall into some trap. Let's first take an example code snippet and see what trap we are talking about. package main import "fmt" type A string func (a A) Error() string { return fmt.Sprintf("%s is an error", a) } func main() { a := A("hello...

   STACKOVERFLOW,GOLANG,FMT     2019-01-23 09:17:15

  Run MySQL on Command Line in Windows

Sometimes if we want to run MySQL but we don't have phpMyAdmin installed. What should we do?On Windows we can run MySQL in following steps:Open Console Window->Type "mysqld -u root". This means we start the mysql server with username root. This program will handle all the communications between our console window and the actual data;After starting the server, we need to use a client to connect to the server and communicate with it. the mysql program is right for this. Next in the command cons...

   mysql,console,command line,windows,defau     2011-08-21 04:14:58

  template function in class in C++

We can define template function in a class, but one thing we should pay attention to is that the member function template definition (in addition to the declaration) should be in the header file, not the cpp, though it does not have to be in the body of the class declaration itself.Example //Sorter.h#pragma onceclass Sorter{public:    Sorter(void);    ~Sorter(void);    template <class type> static void qsort(type arr[],int start,int end);};templ...

   C++,template function,class,definition,d     2011-08-07 09:39:56

  A strange behavior of printing struct with nested struct in GoLang

Normally when trying to print a struct , we would use %v to show all data of the struct. It will print the default format for each field in the struct. %v the value in a default format when printing structs, the plus flag (%+v) adds field names But recently we observed a strange behavior when printing a struct with nested struct which has a String() string implemented, the %v format prints an 'unexpected' output per our understanding.   Let's see the example snippet first. pa...

   PROGRAMMING,GOLANG     2018-10-29 09:59:49

  PHP to get long running process progress dynamically

Frequently in web applications, we may have a request to the back end system which may trigger a long running process such as searching huge amount of data or a long running database process. Then the front end webpage may hang and wait for the process to be finished. During this process, if we can provide the user some information about the progress of the back end process, it may improve user experience. Unfortunately, in web applications, this seems not an easy task because web scripting lang...

   AJAX,PHP,progress,long process,demo     2012-06-04 07:29:37